Part 1: Linux is Different
Perhaps the most important thing to realize about Linux as you're getting started learning it is that Linux is very different from most other operating systems in the world.
Everybody Makes Linux Together
Unlike Mac or Windows, there is not one single company that owns and develops Linux. Even the man who first invented Linux—a Finnish-American man named Linus Torvalds, who still works on Linux today—does not "own" Linux. How is that possible?
"Linux" is, basically, just a computer program. Many companies create computer programs and then keep the source code secret so that you have to buy it from them if you want to use it or get updates to it down the line. By contrast, the Linux program's code is released for free on the internet. Anyone who wants to download Linux, make a copy of it, or even start making changes to turn it into their own version—anyone—everyone—YOU!— are allowed to do that. You would not get sued for copyright infringement or stealing. This is because Linux is Free and Open Source Software (FOSS).
One consequence of this is that when something doesn't work or hasn't been created yet, there's no single, gigantic company who is "in charge" of Linux who will work on fixing the problem. Instead, a few dozen companies and hundreds (actually, thousands) of mostly unpaid volunteers work on Linux together. Most people who do it do because they love Linux and just want to.
That makes Linux different in these ways:
- Unlike projects that are managed from the top-down, Linux is a "wild west" where people can do whatever they want. This has advantages and disadvantages.
- On Linux, there are NO "default" programs. Even the most basic Operating System functions—things like your file explorer, calculator, and start menu—are stand-alone projects developed by Open Source communities.
- Unlike Microsoft and Apple and Google, who spend money on testing and fixing bugs before they release software updates, Linux users are the testers a lot of the time (so get used to things working most of the time, but sometimes not).
- Unlike major operating systems that have one "official" version, there are lots of different versions of Linux, all mostly the same but with tweaks.
Linux Has a History
Linux was first released in 1991. But the ideas that Linux is based on trace back all the way to very early computer research done in the 1960's.
All this makes Linux different in these ways:
- Some of the conventions and terminology still used in Linux today (things like "TTY" or the names of its most basic programs like "sed," "cat," and "grep") are inherited from some of the oldest traditions in computer research.
- The first versions of Linux—which resembled the operating systems that came before it—was completely text-based. As a result, Linux to this day has a special relationship to the terminal and doing things by command prompt rather than through a Graphical User Interface (GUI).
Little Legos vs Big Bricks
What is a "program"? Linux answers this question very differently from other operating systems like Windows or Mac OS.
If you're used to Widows or Mac, you probably think of a "program" as as a single, installable package that has a variety of functions related to a some purpose. Adobe Photoshop, Google Chrome, or Steam count as "programs" in these operating systems. The inner workings of these big "programs" usually don't talk to each other much—the code inside Google Chrome was made just for Google Chrome. In Windows and Mac, when you update a program, you update the whole thing all at once.
Linux thinks about programs very differently. Rather than being "big" pieces of programming that do a bunch of different related things, Linux thinks of a basic program as a very small, very simple piece of programming that does one thing and does it really well. A bigger program (which we might call an "application" to distinguish it from the little building blocks) can then chain together multiple small programs to accomplish more complicated and more useful things—and small programs can be used freely by multiple different bigger programs. In Linux, when you update a program you're actually updating all the little pieces that your other, bigger programs make use of. And an improvement to any of the little programs improves (hopefully) all the bigger programs that use that program to do other stuff.
All this makes Linux different in these ways:
- Linux has many, many, many small programs that you'll never need to learn the names of—but that you DO need to keep up to date. Fortunately, Linux automates that process.
- The changes to Linux over time are much more gradual and piecemeal. Even major updates are more incremental than the major updates on Mac or Windows machines.
Distros, Terminal Emulators, and Desktop Environments—Oh My!
The biggest thing that makes Linux different is what it feels like to use.